1. Field of the Invention
The present invention relates generally to viewing object lists, and in particular, to a method, apparatus, and article of manufacture for providing legibility within two-dimensional (2D) large lists of objects based on a position in a three-dimensional (3D) scene.
2. Description of the Related Art
Complex 3D (and 2D) computer scenes have many discrete objects or model elements. Identifying and finding an object in 3D space can be difficult due to problems of occlusion, distance and density of objects. For this reason, most 3D applications have an abstracted view of the scene so the user can find, edit and identify objects. Typically, the solution is to show the scene as a textual 2D list. While a list can be easily scanned and does not have the occlusion or distance problems of 3D, it still suffers from the problem of density. The large number of objects in a typical scene makes it hard to find what you want. One or more embodiments of the invention solve the problems of legibility within large lists of objects and of the disconnect between a user's understanding of the 3D scene and the abstracted 2D object browser. To better understand the problems of the prior art, a description of information and object management and viewing is useful.
A common way of managing the amount of information in a given scene/drawing, is to group the objects (in the scene/drawing) according to a particular structure or hierarchy based on a taxonomy. The taxonomy or listing of objects can be represented in a “tree” format where sub-objects can be collapsed into a higher level container. Such a hierarchical grouping allows for better legibility up to a point, but can still become overloaded. Such a hierarchical grouping further suffers from the problem of strict classification wherein each object can only exist in a single location on the tree. For example, suppose a tree provides:
Pies                Chocolate        Pecan        
When a chocolate-pecan pie exists, it is unclear which category it should belong to. Creating an alias or pointer from one category to the other category is an unsatisfactory solution that effectively multiplies the number of entries in the tree.
In addition to the problems described above, when working in an abstracted 2D view, the abstracted view is inherently disconnected from the 3D scene it is referencing. Such a disconnection typically results in a user selecting/electing to work in one or the other domain (2D or 3D). However, regardless of the domain selected, there is very little connection between the two domains. Acting on one object in the list (i.e. selecting, deleting, etc.) will affect the appearance in the 3D view, but this is a disjointed action/reaction kind of behavior rather than a dynamic live-link between the two representations. Further, prior art mechanisms are solely based on the selection of elements in a 2D or 3D domain. In this regard, a user may be required to select a group of objects in a 3D scene in order to highlight results in a 2D set. Such a selection and highlighting mechanism is difficult to use and fails to provide the flexibility desired by a user.
Accordingly, what is needed is the ability to easily view a large list of objects in a 3D or 2D scene while actively and dynamically maintaining a link/connection between the list of objects and the 3D/2D scene. There is also a need to solve the problems of strict classification taxonomies and of legibility with large object lists.